home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus Special 25 / AMIGAplus Sonderheft 25 (2000)(Falke)(DE)(Track 1 of 4)[!].iso / Updates / HD-Installer / jst_dev / sources / src / loaders / Katakis / katakishd.asm < prev    next >
Assembly Source File  |  2000-04-12  |  2KB  |  183 lines

  1. ; *** Written by Jean-François Fabre
  2.  
  3.  
  4.     include    "jst.i"
  5.  
  6.     HD_PARAMS    "katakis.d",STD_DISK_SIZE,1
  7.  
  8. loader:
  9.     RELOC_MOVEL    D0,trainer
  10.  
  11.     Mac_printf    "Katakis HD Loader V1.0"
  12.     Mac_printf    "Coded by Jean-François Fabre © 1998"
  13.  
  14.     RELOC_TSTL    trainer
  15.     beq    skip$
  16.  
  17.     NEWLINE
  18.     Mac_printf    "Trainer activated"
  19. skip$
  20.     bsr    LoadScores
  21.  
  22.     JSRABS    LoadDisks
  23.  
  24.     moveq.l    #0,D0
  25.     move.l    #CACRF_CopyBack,D1
  26.     JSRABS    Degrade
  27.  
  28. ;;    WAIT_LMB
  29.  
  30.     GO_SUPERVISOR
  31.     SAVE_OSDATA    $80000
  32.  
  33.     JSRGEN    FreezeAll
  34.  
  35.     bsr    InstallBoot
  36.  
  37.     move.w    #$8040,$DFF096
  38.     move    #$2000,SR
  39.  
  40.     ; **** boot stuff and patch
  41.  
  42.     PATCHGENJMP    $BA.W,InGameExit
  43.     JSRGEN    FlushCachesHard
  44.     moveq    #0,D7
  45.  
  46.     nop
  47.     nop
  48.     jmp    $C0.W
  49.     nop
  50.     nop
  51.  
  52. LoadScores:
  53.     moveq.l    #0,D0
  54.     move.l    #200,D1
  55.     lea    hiscname(pc),A0
  56.     lea    hiscbuff(pc),A1
  57.     JSRGEN    ReadUserFileHD
  58.     tst.l    D0
  59.     beq    exit$
  60.  
  61.     Mac_printf    "** Hi-score file not found"
  62. exit$
  63.     rts
  64.  
  65. SaveScores:
  66.     moveq.l    #0,D0
  67.     move.l    #200,D1
  68.     lea    hiscname(pc),A0
  69.     lea    hiscbuff(pc),A1
  70.     JSRGEN    WriteUserFileHD
  71.     tst.l    D0
  72.     beq    exit$
  73.  
  74.     Mac_printf    "** Cannot save hi-score file"
  75.     Mac_printf    "   Hit RETURN to exit"
  76.     JSRABS    WaitReturn
  77. exit$
  78.     rts
  79.  
  80. InstallBoot:
  81.     JSRGEN    InitTrackDisk
  82.     MOVE    #$0002,28(A1)        ;0C: 337C0002001C
  83.     MOVE.L    #$0004EF6C,40(A1)    ;12: 237C0004EF6C0028
  84.     MOVE.L    #$00022600,36(A1)    ;1A: 237C000226000024
  85.     MOVE.L    #$0008DA00,44(A1)    ;22: 237C0008DA00002C
  86.     JSRGEN    TrackLoad
  87.  
  88.     lea    $4F000,A0
  89.     lea    $C0.W,A1
  90.     lea    $300C0,A2
  91. copy$
  92.     move.l    (A0)+,(A1)+
  93.     cmp.l    A1,A2
  94.     bne.b    copy$
  95.  
  96.     ; hiscore read
  97.  
  98.     PATCH_RTS    $A60
  99.  
  100.     ; hiscore save
  101.  
  102.     PATCHUSRJMP    $AFC,StoreHiscores
  103.  
  104.     ; trackload
  105.  
  106.     PATCHUSRJMP    $1D2FE,ReadAndUnpack
  107.     
  108.     ; keyboard
  109.  
  110.     PATCHUSRJSR    $30C0,KbInt
  111.     move.w    #$C038,$152.W
  112.  
  113.     ; hiscores
  114.  
  115.     lea    hiscbuff(pc),A0
  116.     lea    $1CA12,A1
  117.     move.w    #79,D0
  118. copy2$
  119.     move.l    (A0)+,(A1)+
  120.     dbf    D0,copy2$
  121.  
  122.     rts
  123.  
  124. StoreHiscores:
  125.     STORE_REGS
  126.     lea    hiscbuff(pc),A0
  127.     lea    $1CA12,A1
  128.     move.w    #79,D0
  129. copy2$
  130.     move.l    (A1)+,(A0)+
  131.     dbf    D0,copy2$
  132.     
  133.     lea    SaveScores(pc),A0
  134.     JSRGEN    SetExitRoutine
  135.     
  136.     RESTORE_REGS
  137.     rts
  138.  
  139. KbInt:
  140.     cmp.b    #$59,D0
  141.     bne    noquit$
  142.     JSRGEN    InGameExit
  143. noquit$
  144.     BEAM_DELAY    #2
  145.     rts
  146.  
  147. ReadAndUnpack:
  148.     STORE_REGS
  149.  
  150.     subq.l    #8,D2
  151.     move.l    D2,A0
  152.     mulu    #$1600,D0
  153.     mulu    #$1600,D1
  154.     
  155.     move.l    D0,D2        ; offset
  156.     moveq    #0,D0        ; disk 1
  157.  
  158.     JSRGEN    ReadDiskPart
  159.  
  160.     move.l    A0,A1
  161.     addq.l    #8,A1
  162.     bsr    Decrunch
  163.  
  164.     RESTORE_REGS
  165.     rts
  166.  
  167.  
  168. trainer:
  169.     dc.l    0
  170. ExtBase:
  171.     dc.l    0
  172.  
  173. hiscname:
  174.     dc.b    "katakis.hisc",0
  175.     cnop    0,4
  176.  
  177. hiscbuff:
  178.     incbin    "def_hisc.bin"
  179.     blk.l    10,0
  180. Decrunch:
  181.     incbin    "dec_1d770.bin"
  182.     rts
  183.